package com.ruoyi.examination.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 考试记录-特种设备对象 exam_record_special
 * 
 * @author hcc
 * @date 2025-11-03
 */
public class ExamRecordSpecial extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 考试记录ID */
    private String examRecordId;

    /** 试卷id */
    @Excel(name = "试卷id")
    private String examPaperId;

    /** 考生用户ID */
    @Excel(name = "考生用户ID")
    private String studentId;

    /** 培训班id */
    @Excel(name = "培训班id")
    private String trainingClassId;

    /** 培训班 */
    @Excel(name = "培训班")
    private String trainingClassName;

    /** 培训项目id */
    @Excel(name = "培训项目id")
    private String trainingProjectId;

    /** 培训项目名称 */
    @Excel(name = "培训项目名称")
    private String trainingProjectName;

    /** 考试编号 */
    @Excel(name = "考试编号")
    private String examNumber;

    /** 考试开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "考试开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date examStartTime;

    /** 考试结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "考试结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date examEndTime;

    /** 实际考试时长(分钟) */
    @Excel(name = "实际考试时长(分钟)")
    private String actualDuration;

    /** 考试总分 */
    @Excel(name = "考试总分")
    private String totalScore;

    /** 理论成绩 */
    @Excel(name = "理论成绩")
    private String theoryResult;

    /** 实操成绩 */
    @Excel(name = "实操成绩")
    private String practicalResult;

    /** 补考成绩 */
    @Excel(name = "补考成绩")
    private String makeUpResult;

    /** 考试结果（0-已通过，1-未通过） */
    @Excel(name = "考试结果", readConverterExp = "0=-已通过，1-未通过")
    private String examResult;

    /** 考试次数 */
    @Excel(name = "考试次数")
    private String examFrequency;

    /** 补考标记 */
    @Excel(name = "补考标记")
    private String makeUpMark;

    /** 电子证书 */
    @Excel(name = "电子证书")
    private String electronicCertificate;

    /** 补考情况 */
    @Excel(name = "补考情况")
    private String makeUpStatus;

    /** 是否可二次考试申报 */
    @Excel(name = "是否可二次考试申报")
    private String isSecondExam;

    /** 考试状态（0-已考试，1-未考试） */
    @Excel(name = "考试状态", readConverterExp = "0=-已考试，1-未考试")
    private String examStatus;

    /** 提交类型 */
    @Excel(name = "提交类型")
    private String submitType;

    /** 考试终端IP地址 */
    @Excel(name = "考试终端IP地址")
    private String examIp;

    /** 考试终端坐标 */
    @Excel(name = "考试终端坐标")
    private String examCoordinates;

    /** 设备信息 */
    @Excel(name = "设备信息")
    private String deviceInfo;

    /** 备注 */
    @Excel(name = "备注")
    private String examRecordRemark;

    /** 是否删除 */
    private String delFlag;

    /** $column.columnComment */
    private String exampleOne;

    /** $column.columnComment */
    private String exampleTwo;

    /** $column.columnComment */
    private String exampleThree;

    /** $column.columnComment */
    private String exampleFour;

    /** $column.columnComment */
    private String exampleFive;

    /** 考试地点 */
    private String examAddress;

    /** 理论考试时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date theoryExamTime;

    /** 实操考试时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date practicalExamTime;

    /** 补考时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date makeUpTime;

    public String getExamAddress() {
        return examAddress;
    }

    public void setExamAddress(String examAddress) {
        this.examAddress = examAddress;
    }

    public Date getTheoryExamTime() {
        return theoryExamTime;
    }

    public void setTheoryExamTime(Date theoryExamTime) {
        this.theoryExamTime = theoryExamTime;
    }

    public Date getPracticalExamTime() {
        return practicalExamTime;
    }

    public void setPracticalExamTime(Date practicalExamTime) {
        this.practicalExamTime = practicalExamTime;
    }

    public Date getMakeUpTime() {
        return makeUpTime;
    }

    public void setMakeUpTime(Date makeUpTime) {
        this.makeUpTime = makeUpTime;
    }

    public void setExamRecordId(String examRecordId)
    {
        this.examRecordId = examRecordId;
    }

    public String getExamRecordId() 
    {
        return examRecordId;
    }

    public void setExamPaperId(String examPaperId) 
    {
        this.examPaperId = examPaperId;
    }

    public String getExamPaperId() 
    {
        return examPaperId;
    }

    public void setStudentId(String studentId) 
    {
        this.studentId = studentId;
    }

    public String getStudentId() 
    {
        return studentId;
    }

    public void setTrainingClassId(String trainingClassId) 
    {
        this.trainingClassId = trainingClassId;
    }

    public String getTrainingClassId() 
    {
        return trainingClassId;
    }

    public void setTrainingClassName(String trainingClassName) 
    {
        this.trainingClassName = trainingClassName;
    }

    public String getTrainingClassName() 
    {
        return trainingClassName;
    }

    public void setTrainingProjectId(String trainingProjectId) 
    {
        this.trainingProjectId = trainingProjectId;
    }

    public String getTrainingProjectId() 
    {
        return trainingProjectId;
    }

    public void setTrainingProjectName(String trainingProjectName) 
    {
        this.trainingProjectName = trainingProjectName;
    }

    public String getTrainingProjectName() 
    {
        return trainingProjectName;
    }

    public void setExamNumber(String examNumber) 
    {
        this.examNumber = examNumber;
    }

    public String getExamNumber() 
    {
        return examNumber;
    }

    public void setExamStartTime(Date examStartTime) 
    {
        this.examStartTime = examStartTime;
    }

    public Date getExamStartTime() 
    {
        return examStartTime;
    }

    public void setExamEndTime(Date examEndTime) 
    {
        this.examEndTime = examEndTime;
    }

    public Date getExamEndTime() 
    {
        return examEndTime;
    }

    public void setActualDuration(String actualDuration) 
    {
        this.actualDuration = actualDuration;
    }

    public String getActualDuration() 
    {
        return actualDuration;
    }

    public void setTotalScore(String totalScore) 
    {
        this.totalScore = totalScore;
    }

    public String getTotalScore() 
    {
        return totalScore;
    }

    public void setTheoryResult(String theoryResult) 
    {
        this.theoryResult = theoryResult;
    }

    public String getTheoryResult() 
    {
        return theoryResult;
    }

    public void setPracticalResult(String practicalResult) 
    {
        this.practicalResult = practicalResult;
    }

    public String getPracticalResult() 
    {
        return practicalResult;
    }

    public void setMakeUpResult(String makeUpResult) 
    {
        this.makeUpResult = makeUpResult;
    }

    public String getMakeUpResult() 
    {
        return makeUpResult;
    }

    public void setExamResult(String examResult) 
    {
        this.examResult = examResult;
    }

    public String getExamResult() 
    {
        return examResult;
    }

    public void setExamFrequency(String examFrequency) 
    {
        this.examFrequency = examFrequency;
    }

    public String getExamFrequency() 
    {
        return examFrequency;
    }

    public void setMakeUpMark(String makeUpMark) 
    {
        this.makeUpMark = makeUpMark;
    }

    public String getMakeUpMark() 
    {
        return makeUpMark;
    }

    public void setElectronicCertificate(String electronicCertificate) 
    {
        this.electronicCertificate = electronicCertificate;
    }

    public String getElectronicCertificate() 
    {
        return electronicCertificate;
    }

    public void setMakeUpStatus(String makeUpStatus) 
    {
        this.makeUpStatus = makeUpStatus;
    }

    public String getMakeUpStatus() 
    {
        return makeUpStatus;
    }

    public void setIsSecondExam(String isSecondExam) 
    {
        this.isSecondExam = isSecondExam;
    }

    public String getIsSecondExam() 
    {
        return isSecondExam;
    }

    public void setExamStatus(String examStatus) 
    {
        this.examStatus = examStatus;
    }

    public String getExamStatus() 
    {
        return examStatus;
    }

    public void setSubmitType(String submitType) 
    {
        this.submitType = submitType;
    }

    public String getSubmitType() 
    {
        return submitType;
    }

    public void setExamIp(String examIp) 
    {
        this.examIp = examIp;
    }

    public String getExamIp() 
    {
        return examIp;
    }

    public void setExamCoordinates(String examCoordinates) 
    {
        this.examCoordinates = examCoordinates;
    }

    public String getExamCoordinates() 
    {
        return examCoordinates;
    }

    public void setDeviceInfo(String deviceInfo) 
    {
        this.deviceInfo = deviceInfo;
    }

    public String getDeviceInfo() 
    {
        return deviceInfo;
    }

    public void setExamRecordRemark(String examRecordRemark) 
    {
        this.examRecordRemark = examRecordRemark;
    }

    public String getExamRecordRemark() 
    {
        return examRecordRemark;
    }

    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    public void setExampleOne(String exampleOne) 
    {
        this.exampleOne = exampleOne;
    }

    public String getExampleOne() 
    {
        return exampleOne;
    }

    public void setExampleTwo(String exampleTwo) 
    {
        this.exampleTwo = exampleTwo;
    }

    public String getExampleTwo() 
    {
        return exampleTwo;
    }

    public void setExampleThree(String exampleThree) 
    {
        this.exampleThree = exampleThree;
    }

    public String getExampleThree() 
    {
        return exampleThree;
    }

    public void setExampleFour(String exampleFour) 
    {
        this.exampleFour = exampleFour;
    }

    public String getExampleFour() 
    {
        return exampleFour;
    }

    public void setExampleFive(String exampleFive) 
    {
        this.exampleFive = exampleFive;
    }

    public String getExampleFive() 
    {
        return exampleFive;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("examRecordId", getExamRecordId())
            .append("examPaperId", getExamPaperId())
            .append("studentId", getStudentId())
            .append("trainingClassId", getTrainingClassId())
            .append("trainingClassName", getTrainingClassName())
            .append("trainingProjectId", getTrainingProjectId())
            .append("trainingProjectName", getTrainingProjectName())
            .append("examNumber", getExamNumber())
            .append("examStartTime", getExamStartTime())
            .append("examEndTime", getExamEndTime())
            .append("actualDuration", getActualDuration())
            .append("totalScore", getTotalScore())
            .append("theoryResult", getTheoryResult())
            .append("practicalResult", getPracticalResult())
            .append("makeUpResult", getMakeUpResult())
            .append("examResult", getExamResult())
            .append("examFrequency", getExamFrequency())
            .append("makeUpMark", getMakeUpMark())
            .append("electronicCertificate", getElectronicCertificate())
            .append("makeUpStatus", getMakeUpStatus())
            .append("isSecondExam", getIsSecondExam())
            .append("examStatus", getExamStatus())
            .append("submitType", getSubmitType())
            .append("examIp", getExamIp())
            .append("examCoordinates", getExamCoordinates())
            .append("deviceInfo", getDeviceInfo())
            .append("examRecordRemark", getExamRecordRemark())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("exampleOne", getExampleOne())
            .append("exampleTwo", getExampleTwo())
            .append("exampleThree", getExampleThree())
            .append("exampleFour", getExampleFour())
            .append("exampleFive", getExampleFive())
            .append("examAddress", getExamAddress())
            .append("theoryExamTime", getExampleFive())
            .append("practicalExamTime", getExampleFive())
            .append("makeUpTime", getExampleFive())
            .toString();
    }
}
